// 本模块专门写校验输入框的各种函数

// 本函数校验用户输入的数是否为正整数
export function checkNonDigit(e, num) {
    console.log(num);
    // 只保留 0-9，去掉一切非数字字符
    const pure = e.target.value.replace(/[^0-9]/g, '')
    // 保证 v-model 同步
    num.value = pure
}

// 本函数校验用户输入价格是否合法
// 仅仅允许输入小数点后两位
// 且第一位不允许为小数点
export function checkPrice(e, price) {
    let val = e.target.value

    // 1. 首位必须是数字；禁止负号
    val = val.replace(/^[^0-9]/, '')

    // 2. 仅保留第一个小数点，去掉后面的
    const parts = val.split('.')
    if (parts.length > 2) val = parts[0] + '.' + parts.slice(1).join('')

    // 3. 小数点后截断两位
    if (parts[1] && parts[1].length > 2) val = parts[0] + '.' + parts[1].slice(0, 2)

    // 4. 去掉一切非数字非小数点字符
    val = val.replace(/[^0-9.]/g, '')

    // 同步显示与 v-model
    if (val !== e.target.value) e.target.value = val
    price.value = val
}

// 本函数用于避免用户输入的时候输入了空格
export function checkSpace(e, str) {
    // 仅保留非空字符
    const pure = e.target.value.replace(/\s/g, '')
    // 保证 v-model 同步
    if (pure !== e.target.value) e.target.value = pure
    str.value = pure
}

// 本函数用于校验邮箱格式是否正确
export function checkEmail(email) {
    if (typeof email !== 'string') return false;
    // 不允许前后空格；整体必须直接匹配邮箱格式
    const regex = /^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/;
    return regex.test(email);   // 不再 trim
}